package com.woniuxy.service;

import com.github.pagehelper.PageInfo;
import com.woniuxy.entity.Exam;

import java.util.List;
import java.util.Map;

/**
 * (Exam)表服务接口
 *
 * @author zjx
 * @since 2021-05-14 19:41:09
 */
public interface ExamService {

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    Exam queryById(Integer id);

    /**
     * 查询多条数据
     *
     * @param offset 查询起始位置
     * @param limit  查询条数
     * @return 对象列表
     */
    List<Exam> queryAllByLimit(int offset, int limit);

    /**
     * 新增数据
     *
     * @param exam 实例对象
     * @return 实例对象
     */
    Exam insert(Exam exam);

    /**
     * 修改数据
     *
     * @param exam 实例对象
     * @return 实例对象
     */
    Exam update(Exam exam);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Integer id);

    /**
     * Description : 分页查询与模糊查询
     * ChangeLog : 1. 创建 (2021/5/18 15:20 [zjx]);
     * @param startPage  其实页
     * @param pageSize 每页条数
     * @param exam 考试实体类
     * @return null
    */
    PageInfo<Map<String,String>> queryAll(Integer startPage, Integer pageSize, Exam exam);

    /**
     * Description : 查询考试详情，通过考试对象，查询学生信息
     * ChangeLog : 1. 创建 (2021/5/18 16:39 [zjx]); 
     * @param map  分页信息，模糊搜索信息
     * @return null
    */
    PageInfo<Map<String, String>> queryAllStudents(Map<String, Object> map);

    /**
     * Description : 对应考试补考信息查询
     * ChangeLog : 1. 创建 (2021/5/18 17:57 [zjx]);
     * @param startPage 起始页
     * @param pageSize 每页条数
     *  @param  id 补考科目id
     * @return null
    */
    PageInfo<Map<String, String>> queryMakeUpAll(Integer startPage,Integer pageSize,Integer id);

    /**
     * Description : 对应考试学员补考记录查询
     * ChangeLog : 1. 创建 (2021/5/18 17:57 [zjx]);
     * @param startPage 起始页
     * @param pageSize 每页条数
     *  @param  id 补考科目id
     *  @param  studentName 学生名字
     * @return null
     */
    PageInfo<Map<String, String>> queryMakeUpStudent(Integer startPage, Integer pageSize, Integer id,String studentName);

    /**
     * Description : 对应考试试卷批阅展示
     * ChangeLog : 1. 创建 (2021/5/18 17:57 [zjx]);
     * @param startPage 起始页
     * @param pageSize 每页条数
     *  @param  id 补考科目id
     *  @param  studentName 学生名字
     * @param  reviewStatus 批阅状态
     * @return null
     */
    PageInfo<Map<String, String>> queryReview(Integer startPage, Integer pageSize, Integer id, String studentName, Integer reviewStatus);
}
